import axios from 'axios';
import Vue from 'vue'
import router from '../router'
import { Message } from 'element-ui';
import store from '../store'

import nprogress from 'nprogress'
import 'nprogress/nprogress.css'
Vue.use(Message )
axios.defaults.timeout = 60000; //超时终止请求
// axios.defaults.baseURL='https://cloud.nengshida.com:5124/';
// axios.defaults.baseURL='http://192.168.1.120:5155/';

// router.beforeEach((to, from, next) => {
//     nprogress.start()
//     if (store.state.token) {   //判断是否已经登录
//       next();
//     } else {
//       if(to.path === '/login')next()
//       next('/login');
//       nprogress.done()
//     }
//   });
//   router.afterEach((to, from) => {
//     nprogress.done()
//   })

// axios.interceptors.request.use(function(config) {
// 	// 在发送请求之前做些什么
// 	console.log(config)
//     let token = localStorage.getItem('token') //拦截器获取到token 存储到变量token中
//     if (token) {
//         //config是一个请求参数,他是一个对象,Authorization 是前后台约定好的那key,把获取到的token赋值给他
//         config.headers['Authorization'] = token
//     }
// 	return config;
// }, function(error) {
// 	// 对请求错误做些什么
// 	return Promise.reject(error);
// });

// // 添加响应拦截器
// axios.interceptors.response.use(function(response) {
// 	// 对响应数据做点什么
// 	console.log(response,777)
// 	// store.state.contentType= headers['content-type'];
// 	const contentDisposition = response.headers['content-disposition'];
// 	if (contentDisposition) {
// 		store.state.fileName = window.decodeURI(response.headers['content-disposition'].split('=')[1]);
// 	}
// 	console.log(store.state.contentType,store.state.fileName,6655);
// 	let {data:res}=response
// 	if(res.code==401){
// 		localStorage.removeItem("test");
// 		localStorage.removeItem("token");
// 		localStorage.removeItem("name");
// 		localStorage.removeItem("shiro");
// 		router.push('/login')
// 	}else if(res.code==200){
// 		return res;
// 	}else{
// 		Message({
// 			message: res.message,
// 			type: 'warning',
// 			duration: 5 * 1000
// 		});
// 		return res;
// 	}
// }, function(error) {
// 	// 对响应错误做点什么
// 	return Promise.reject(error);
// });

/**
 * 封装get方法
 * @param url
 * @param data
 * @returns {Promise}
 */

export function fetch(url, params = {}) {
	return new Promise((resolve, reject) => {
		axios.get(url, {
				params: params
			})
			.then(response => {
				resolve(response);
			})
			.catch(err => {
				reject(err)
			})
	})
}

/**
 * 封装post请求
 * @param url
 * @param data
 * @returns {Promise}
 */

export function post(url, data = {}) {
	return new Promise((resolve, reject) => {
		axios.post(url, data)
			.then(response => {
				console.log(url);
				resolve(response);
			}, err => {
				reject(err)
			})
	})
}

/**
 * 封装patch请求
 * @param url
 * @param data
 * @returns {Promise}
 */

export function patch(url, data = {}) {
	return new Promise((resolve, reject) => {
		axios.patch(url, data)
			.then(response => {
				resolve(response.data);
			}, err => {
				reject(err)
			})
	})
}

/**
 * 封装put请求
 * @param url
 * @param data
 * @returns {Promise}
 */

export function put(url, data = {}) {
	return new Promise((resolve, reject) => {
		axios.put(url, data)
			.then(response => {
				resolve(response.data);
			}, err => {
				reject(err)
			})
	})
}